package com.ttg.model.dto.function;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * @author ZQ
 * @version 1.0
 * @Description
 * @date 2021/4/13 10:44
 */
@Data
@NoArgsConstructor
public class MobileSmsDTO implements Serializable {
    private static final long serialVersionUID = -5978880897030930395L;
    /**
     * 自增主键
     */
    private Long smsId;

    /**
     * 手机号码
     */
    private String smsMobile;

    /**
     * 添加时间
     */
    private LocalDateTime smsAddTime;

    /**
     * 发送时间
     */
    private LocalDateTime smsSendTime;

    /**
     * 过期时间
     */
    private LocalDateTime smsExpiredTime;

    /**
     * 验证时间
     */
    private LocalDateTime smsCheckTime;

    /**
     * 验证次数
     */
    private Integer smsCheckNum;

    /**
     * 验证码
     */
    private String smsCode;

    /**
     * 短信内容
     */
    private String smsContent;

    /**
     * 短信状态（0未发送，1已发送，2已验证，4已删除或者失效，5发送失败）
     */
    private Integer smsStatus;

    /**
     * 发送通道（验证码为1，其它为2）
     */
    private Integer smsChannel;

    /**
     * 发送到通道的时间
     */
    private LocalDateTime smsChannelTime;

    /**
     * 短信签名（防止重发，手机号码+发送内容等md5后的值）
     */
    private String smsSign;

    /**
     * IP
     */
    private String smsIp;

    /**
     * 签名
     */
    private String smsQm;

    /**
     * 返回数据
     */
    private String smsResp;

    /**
     * 执行脚本
     */
    private String smsCmd;
    /**
     * 校验一分钟内重发送
     */
    private boolean notCheck;
    /**
     * 是否出现消息编号
     * 批量短信不支持该字段，默认为false
     */
    private boolean showSmsId;
    /**
     * 是否立即发送
     * 批量短信不支持该字段，默认为true
     */
    private boolean sendNow;

    public MobileSmsDTO(Integer smsType, String mobile, String content, LocalDateTime expiredTime, String randCode,
                        boolean sendNow, boolean showSmsId, String smsQm, String cmd, boolean notCheck) {
        this.smsChannel = smsType;
        this.smsMobile = mobile;
        this.smsContent = content;
        this.smsExpiredTime = expiredTime;
        this.smsCode = randCode;
        this.sendNow = sendNow;
        this.showSmsId = showSmsId;
        this.smsQm = smsQm;
        this.smsCmd = cmd;
        this.notCheck = notCheck;
    }
}
